package com.Homework.test;

import java.io.IOException;
import java.text.Collator;
import java.util.ArrayList;
import java.util.Locale;

public class Sort {
    public void sort_(String[] In, ArrayList<Yq> yq) throws IOException {
        int CO = 0;
        int flag3 = 0;  //标记每个省的市区个数。]
        int sum = 0;  //计算总人数。
        String pro = null; String str = null;

        //排序。
        //计算省份总人数。
        for (int i = 0; i < yq.size()-1; i++) {
            if (yq.get(i).Province.equals(yq.get(i+1).Province)) {
                sum += yq.get(i).Citynum;
                CO = i;

            } else {
                for (int j = flag3; j < CO + 2; j++) {
                    yq.get(j).SumNum = sum + yq.get(i).Citynum;
                }
                flag3 = CO + 2;   //少比较了两次，所以+2;
                CO = 0;
                sum = 0;
            }
        }
        sum = 0;
        for(int i = 0; i <yq.size(); i++)
        {
            if(yq.get(i).SumNum == 0)
                sum += yq.get(i).Citynum;
        }
        for(int i = 0; i <yq.size(); i++)
        {
            if(yq.get(i).SumNum == 0)
                yq.get(i).SumNum = sum;
        }

        //人数相同按字母大小排序。
        for (int j = 0; j < yq.size(); j++)
        {
            for (int i = 0; i <yq.size() - j && i+1 < yq.size() - j; i++) {
                Yq temp = new Yq();
                if (yq.get(i).SumNum == yq.get(i+1).SumNum ) {
                    if (yq.get(i).Citynum < yq.get(i+1).Citynum) {
                        temp = yq.get(i);
                        yq.set(i,yq.get(i+1));
                        yq.set(i+1,temp);
                    }
                    //人数相同按字母大小排序。
                    else if(yq.get(i).Citynum == yq.get(i+1).Citynum)
                    {
                        int n = getCode(yq.get(i).City,yq.get(i+1).City);
                        if(n == 1)
                        {
                            temp = yq.get(i);
                            yq.set(i,yq.get(i+1));
                            yq.set(i+1,temp);
                        }
                    }
                }
            }
        }

    }

    // 比较汉字函数
    public static int getCode(String s,String s1) {
        if (s == null && s.equals("") && s1==null && s1.equals(""))
            return 3; // 保护代码
        Collator collator = Collator.getInstance(Locale.CHINA);
        return collator.compare(s,s1);
    }


}

